查看原文
其他

初级,中级和高级开发人员的差异都在哪儿?

21CTO 21CTO 2023-01-28

摄影:Clem Onojeghuo在Unsplash上


定位一个初级,中级或高级开发人员,并不仅仅与拥有多少年的编程经验有关。初级开发人员有可能比高级开发人员年龄更大,这取决于真实的技能。也不意味着高级开发人员必须成为全部技术栈的专家,但可以肯定地说,高级开发人员在编程方面一定比初级、中级开发人员更熟练。


但是,也不能简单通过编程技能,来将人员区分为高级、中级和初级。那么,还有哪些因素来做区别?


以下分别描述。


知识



很明显,高级开发人员比初级、中级开发人员有着更多的知识。通过设计模式,架构,自动化测试,性能,安全性等技术来区分是初级、中级还是高级开发人员差距的好方法。


知道如何完成软件开发中的事情非常重要。但只是知道这些东西也不能使你成为高级开发人员。知识尚不是开发人员之间的最大区别,这是其中一个因素。


编码



尽管大多数人认为,编码并不是与计算机通信。编码是人指导计算机的交流方式。最终代码被编译并转换为零和一。


代码必须在将来对其他开发人员有意义。从未见过老代码的新团队应该能够打开并很快处理新功能或进行错误修复。这是初级和高级开发人员之间的巨大差异。


我在此处的比较中省略了中级开发人员。因为在编码技能方面,中级开发人员位于一个灰色地带,它介于初级和高级之间,可能更倾向于高级方面。这主要与开发经验有关,因为中级开发人员已经能够完成了整个开发周期的闭环,他们犯过许多低级的错误并从中吸取了教训。


如何嗅出初级开发人员?



初级开发人员缺乏经验。有些人是刚毕业,刚刚开始他的第一份全职工作。初级人员的心态通常是让代码能干活就好,能运行起来的软件和良好的软件被认为是相同的东西。


编写简单的代码其实很难。这是初级开发人员做不了的事,他们常编写奇特的代码。可以通过古怪的单行或变量,或者过于复杂的抽象来识别是不是一个初级开发人员。而且初级开发人员会炫耀让其他人知道,他创造的编码的好方法,但这是错的。


初级开发人员做到了代码在计算机的层面,但牺牲了人性化的一面。


高级开发人员什么样?



在看高级开发人员的代码时,你可能会想:这是全部代码吗?其余部分在哪里?高级开发人员能够编写简单,直接的代码。这是开发者在编程时拥有的最大品质之一。


每位资深开发人员都在遵循KISS的原则:保持简单,愚蠢。


高级开发与初级开发人员思考代码时是不同的方式。高级开发人员编写的代码会考虑可维护性和可伸缩性。这是一种与初级开发人员截然不同的心态 - 成年人会考虑使用代码的人,而大三学生只是考虑让能让计算机运行起来就行。



不仅仅是编码技巧



除了编码技巧,还有一些其他因素可以告诉我们,谁是什么类型的人。


一般而言,初级开发人员适合执行影响较小的简单任务或模块。他们做不了任何架构设计,中级开发人员也没有设计能力,他们只是执行任务。与初级开发人员的不同之处在于,只要将这些任务分配给相对常规的任务,他们就会以较少的监督就能执行这些任务。高级开发人员可以完全自己开发一个应用程序。


当然这并不意味着高级开发人员在过程中没有任何问题。每个开发人员每天都会遇到很多问题,而且情况永远不会改变。但这对高级开发人员来说并没有什么。


不同之处在于,高级开发人员知道如何提出正确的问题以及如何处理这些问题。中级开发人员可以在相对日常的任务中提出正确的问题,但需要更复杂的帮助信息。


高级开发人员永远不会迷失,知道如何用正确的行动来跟进问题,当然并不意味着高级开发人员不能向其他人员寻求帮助。最好的方法是向其他在该领域经验的开发人员寻求帮助。


中级开发人员也能提出正确问题,但是他一般不会被分配到需要深入技术或较高复杂度的开发任务。


不该指望一个初级人员立刻提出正确的问题。因为他们缺乏经验,更需要有经验的开发人员指导,告诉初级人员需要获得哪些必要的资源或向正确的方向推进。


如下到达下一个级别



作为开发人员,人们都希望自我提升并变得更强大。那么,采取哪些步骤来达到新的水平?


初级到中级


初级开发人员缺乏经验,至少要经历几次整个开发周期非常重要。通过这种方式,你会陷入大量的技术陷阱,学习,改进,记住如何在下次避开它们。


在编码时,应该学习如何编写简单的代码,想想未来可能也会处理这段代码的人。还应该学习如何更好地调试,这会使你更好地了解运行过程中发生的详细状况。


此外,还应该熟悉代码最佳实践,了解架构,性能,安全性等,努力缩小到中级开发人员所需的知识差距。


中级到高级


从中级到高级的过程可能会非常困难,一些开发人员在整个职业生涯中始终保持中等水平上不去。


高级开发人员知道软件的哪些角可以切割,哪些角不应该切割。这些都是过去犯错时得到的教训而来。


如果你想要达到高级水平,必须准备好接受没有任何人知道怎样解决的任务,而不仅仅是知道如何完成工作。作为高级开发人员,一部分工作还要帮助经验不足的人员,当他们不知道如何做某事时,你就是这些人的后援。


高级开发人员掌握的技术栈会令你感到惊讶,他们不仅仅在编码技巧上有独到之处,他还熟悉在公司内使用的所有工具和应用。


结论



初级、中级和高级开发人员之间的差异并非全部来自经验。可以肯定地说,高级开发人员比初级和中级开发人员更熟练,但知识并非最重要因素。


高级开发人员能够编写更简单的代码,与初级开发人员的思维方式完全不同。不仅仅是编码技巧,知道要问什么问题以及如何跟进这些问题至关重要,只有丰富经验的高级开发人员才知道在相关情况下做到某事。


想成为初级开发人员也并非容易,要专注于编写简单的代码并经历多个软件开发生命周期。要从中级到高级开发人员,应该专注于学习而不仅仅是修改日常任务,需要承担最艰巨的任务,成为技术栈的大牛高级,还有另一个责任是成为初级开发人员的有力后盾。


送给各位Martin Fowler的一句话: “任何傻瓜都可以编写计算机可以理解的代码。优秀的程序员编写人类可以理解的代码。“


编译:老夏

来源:21CTO社区


相关阅读:


网站架构师成长之路

野蛮生长——我们如何成长为全栈工程师?


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存